package com.link_with_health.service;

import com.link_with_health.exception.BaseException;
import com.link_with_health.model.WaitingQueueEntity;

import java.util.List;

public interface WaitingQueueService {

    /**
     * 通过候诊id获取候诊信息
     * @param id 候诊id
     * @return  候诊信息
     * @throws BaseException 异常
     */
    WaitingQueueEntity getWaitingQueueById(Long id) throws BaseException;

    /**
     * 通过医生id获取候诊信息
     * @param id 医生id
     * @return  候诊信息
     * @throws BaseException 异常
     */
    List<WaitingQueueEntity> getWaitingQueueByDoctor(Long id) throws BaseException;

    /**
     * 通过患者id获取候诊信息
     * @param id 患者id
     * @return  候诊信息
     * @throws BaseException 异常
     */
    List<WaitingQueueEntity> getWaitingQueueByPatient(Long id) throws BaseException;

    /**
     * 获取所有候诊信息
     * @return 候诊信息
     * @throws BaseException 异常
     */
    List<WaitingQueueEntity> getAllWaitingQueue() throws BaseException;

    /**
     * 修改候诊信息
     * @param queue 候诊信息
     * @return 改动数量
     * @throws BaseException 异常
     */
    int  changeWaitingQueue(WaitingQueueEntity queue) throws BaseException;

    /**
     * 增加候诊信息
     * @param queue 候诊信息
     * @return 改动数量
     * @throws BaseException 异常
     */
    int addWaitingQueue(WaitingQueueEntity queue) throws BaseException;

    int deleteWaitingQueue(Long id) throws BaseException;
}
